#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QMouseEvent>
#include<QPaintEvent>
#include<QGraphicsView>
#include<QPainter>
#include<QTimer>
#include<smoke.h>
#include<bestscore.h>
#include<QImage>
#include<home.h>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    void mousePressEvent(QMouseEvent *)override;//通过点击实现丁真起飞
//    void mouseReleaseEvent(QMouseEvent *ev);
    void paintEvent(QPaintEvent *ev)override;
    void in();//初始化数据
    void game();//游戏相关函数
    void speed();//速度函数
    void startgame();//开始游戏
    void endgame();//结束游戏
    void backdraw();//游戏背景
    void dzdraw();//丁真 人物
    void smokedraw();//芙蓉王香烟
    bool collide();//碰撞判定
public slots:
          void cirPaint();//循环绘制
          void cirgame();//游戏循环
private:
    Ui::MainWindow *ui;
    QImage back;//背景图
    QImage ground;//地面 理塘大草原

    QPixmap* dz1;
    QPixmap* dz2;
    QPixmap* dz3;//三种状态

    int dj0=1;
    int djmax=15;
    int dzy=0;//丁真的y坐标
    int dzx=0;//丁真的x坐标

    QMatrix matrix;//对图片的编辑，旋转
    enum GAME{STOP=1,RUN=2};//游戏停止/进行枚举
    enum DZ{lose,up,down};//丁真的三种状态


    GAME gameStatus=GAME::STOP;
    DZ dzStatus=DZ::down;//游戏初始数据：暂停，丁真下降

    double downSpeed=5.0;
    double upSpeed=3.0;//上升、下降速度

    QTimer* timer;
    QPaintEvent* e;

};
#endif // MAINWINDOW_H
